package com.example.blogsystem.utils;

import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.nio.charset.StandardCharsets;
import java.util.SplittableRandom;
import java.util.UUID;

public class SecurityUtils {

    /**
     * 加密
     */
    public static String encrypt(String password) {
        //生成随机字符串（盐值）
        String salt = UUID.randomUUID().toString().replace("-","");
        //最终密码：md5（盐值加原始密码）
        String finalPassword = DigestUtils.md5DigestAsHex((salt+password).getBytes());
        return salt+finalPassword;
    }

    /**
     * 验证
     */
    public static boolean verify(String password,String finalPassword) {
        if(!StringUtils.hasLength(password) || !StringUtils.hasLength(finalPassword)) {
            return false;
        }
        //最终密码不是64位, 则不正确
        if (finalPassword.length() != 64){
            return false;
        }
        String salt = finalPassword.substring(0,32);
        String securityPassword = DigestUtils.md5DigestAsHex((salt+password).getBytes());
        if(finalPassword.equals(salt+securityPassword)) {
            return true;
        }
        return false;

    }

//    public static void main(String[] args) {
//        System.out.println(encrypt("123456"));
//    }
}
